In a great majority of the computer systems in use today there are normally a variety of ports which enable the user to connect any number of external devices to the main unit of the computer. Such devices include printers, modems, floppy disk or tape drives, and mice or other pointing devices to name just a few of a great number of external devices which may be interconnected to computer systems. The interface ports to which these devices connect transfer data to the peripheral device generally in one of two manners, serial or parallel data transfer.
In a serial data transfer, the actual data is transferred from the sending device to the receiving device one data bit at a time. While the serial data transfer interconnection may include a number of control lines, there remains only one data transfer line over which the data is sent in a bit-by-bit manner. In a parallel data transfer, more than one data bit is transferred simultaneously over a plurality of data lines. The number of data bits transferred simultaneously varies depending on the type of interface port and the design of the peripheral device. An entire data byte, or a number of data bytes, may be transferred simultaneously in such a system. Generally, control signals are exchanged between the sending and receiving devices over control lines which are part of the parallel interface connection and prepare the devices for the forthcoming data transfer.
To further describe a parallel port arrangement, a printer (for example) and the computer system to which it attaches often communicate via standard parallel port communications protocol. Such protocol generally includes handshaking between the computer system and the printing device in order to ensure that the sending and receiving devices are prepared for the forthcoming data transfer. The parallel data transfer protocol comprises the sending device informing the receiving device that it is prepared to send the forthcoming data byte. The receiving device responds when it has accepted the data byte. Using such a communications protocol is extremely useful in insuring that the data byte or bytes to be transferred is not transmitted until the sending and the receiving devices are both prepared to carry out their respective rolls in the data transfer. While parallel port data transfer protocol does insure a substantially high degree of integrity in the data transfer, the data transfer rate is substantially slower in a number of parallel port implementations.
When the parallel port of a computer system is used to interface the computer to a device such as a printer, the data rate at which the parallel port operates is normally greater than the speed at which the printing device will operate, so that the limiting factor in the data transfer rate is the speed of the printer and not the data transfer rate inherent to the parallel interface protocol. However, because of the number and variety of external devices which may be interconnected to the computer system, the data transfer rate realizable using standard parallel port interface protocol may often be the limiting factor in the data transfer rate between the computer system and the external device. For example, mass storage devices such as tape backups and hard drives are generally designed for operation internally within the computer system's main unit, where a controller board interconnects the device directly to the computer bus, and the devices operate at a transfer rate much higher than that realizable using standard parallel port communications protocol. Mass storage devices, however, are now more frequently packaged as external devices in order to allow portability between computer systems. Such portability would be desirable to the user who would want to backup a number of computer systems using only one tape drive device transportable between computer systems and connectable to an external data port. This would alleviate the need to provide a backup device at each and every computer system for users having greater than one computer system.
By modifying the communications protocol which directs data transfer through a parallel port, the parallel port data transfer rate may be greatly increased. The increase in data transfer rate results from reducing the amount of handshaking occurring between the sending and receiving device resulting in a greater amount of time being devoted to transferring data rather than performing handshaking operations. A typical scheme known in the art for increasing the data transfer rate through a parallel port during a write operation from the computer to an external device comprises having the external device monitor the data lines for a change in any of the lines to indicate that a new data byte has been transferred. Additionally, a control line is monitored to determine if two identical bytes have been transferred as is indicated when the control line toggles. When the computer system reads a data byte from an external device, the computer determines generally how long it takes for the data to become stable on the lines and enters a short delay loop before reading each individual data byte.
The above described method of data transfer is quite effective in increasing the overall data transfer rate, but provides no method by which the user can insure the integrity of the data transferred. Whereas in a standard parallel interface, a substantially high data transfer integrity results because it is predetermined that both the sending and receiving devices are prepared for the data transfer, the high speed parallel port interface method does not correspondingly ensure that both the sending and receiving transfer devices are prepared because handshaking is greatly reduced. Thus, the integrity of the data transfer is called into question.